public class code1 {
    public static void main(String[] args) {
        String s1="hello";
        String s2="world";
        System.out.println(s1+s2);

        //int->string
        int n=10086;
        //方法一： 使用String类的 valueOf方法
        String str1=String.valueOf(n);
        //方法二：
        String str2=n+"";
        System.out.println("Str="+n+1);  //整数+字符串=》整数直接与字符串拼接，结果仍为字符串
        System.out.println("Str="+(n+1));

        //String->int :  使用Integer的parseInt方法
        String s="10086";
        int tmp=Integer.parseInt(s);
        System.out.println(tmp);
    }
    public static void main3(String[] args) {
        //类型提升：不同类型间的运算，小类型会提升为大类型
        int a=10;
        long b=20L;
        //int c=a+b; =>编译报错，int+long 提升为 long+long => long
        //             int=long =>必须强转
        long c=a+b;//=>不会报错

        byte x=10;
        byte y=20;
        //byte z=x+y; 报错
        byte z=(byte)(a+b);
    }
    public static void main2(String[] args) {
        //隐式类型转换： 小范围赋值给大范围，发生自动类型转化
        int a=10;
        long b=20L;
        b=10;      //10默认是int，小范围转大范围，自动转化

        //强制类型转换： 大范围赋值给小范围，必须进行强制类型转换，否则报错。
        a=(int)b;
    }
    public static void main1(String[] args) {
        int a=10;
        long b=20L;
        b=a;
        //a=b;   报错，大类型赋给小类型会直接报错
    }
}
